home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / WD_SRC.ZIP / SYSTEM / FILE_IO.CPP < prev    next >
C/C++ Source or Header  |  1994-12-31  |  2KB  |  124 lines

  1. #include "..\Source\Lastwolf.hpp"
  2.  
  3.  
  4. MFile::MFile()
  5. {
  6.     fileHandle = -1;
  7.     bFileOpen = FALSE; 
  8. }
  9.  
  10.  
  11. MFile::~MFile()
  12. {
  13.     if( bFileOpen )
  14.         close(fileHandle);
  15. }
  16.  
  17.  
  18. MFile &MFile::operator=(MFile ©From)
  19. {
  20.     bFileOpen = copyFrom.bFileOpen;
  21.     fileHandle = copyFrom.fileHandle;
  22.     
  23.     return *this;
  24. }
  25.  
  26.  
  27. BOOL MFile::fio_OpenSource( const char *p_SourceFilename, char ReadOrWrite )
  28. {
  29.     if( toupper(ReadOrWrite) == 'R' )
  30.         fileHandle = open( p_SourceFilename, O_RDONLY | O_BINARY );
  31.     else
  32.         fileHandle = open( p_SourceFilename, O_WRONLY | O_BINARY );
  33.     
  34.     
  35.     if( fileHandle == -1 )
  36.         return FALSE;
  37.  
  38.     bFileOpen = TRUE;
  39.  
  40.     // Store the filename.
  41.     strncpy( fileName, p_SourceFilename, 256 );
  42.     
  43.     // Get the length of the file.
  44.     lseek( fileHandle, 0, SEEK_END );
  45.     fileLength = tell( fileHandle );
  46.     lseek( fileHandle, 0, SEEK_SET );
  47.     
  48.     return TRUE;
  49. }
  50.  
  51. BOOL MFile::fio_CloseSource()
  52. {
  53.     if( !bFileOpen )
  54.         return FALSE;
  55.     
  56.     close(fileHandle);
  57.     bFileOpen = FALSE;
  58.     
  59.     return TRUE;
  60. }
  61.     
  62.  
  63. BYTE MFile::fio_ReadByte()
  64. {
  65.     char byteRead;
  66.     
  67.     if( !bFileOpen )
  68.         return -1;
  69.     
  70.     read( fileHandle, &byteRead, 1 );
  71.     return byteRead;    
  72. }
  73.  
  74. BOOL MFile::fio_Read( void *p_Buffer, DWORD size )
  75. {
  76.     if( !bFileOpen )
  77.         return FALSE;
  78.     
  79.     read( fileHandle, p_Buffer, size );
  80.     
  81.     return TRUE;    
  82. }
  83.  
  84. BOOL MFile::fio_Write( void *p_Buffer, DWORD size )
  85. {
  86.     if( !bFileOpen )
  87.         return FALSE;
  88.     
  89.     write( fileHandle, p_Buffer, size );
  90.  
  91.     return TRUE;
  92. }
  93.  
  94.  
  95. BOOL MFile::fio_Seek( DWORD seekPos )
  96. {
  97.     if( !bFileOpen )
  98.         return FALSE;
  99.     
  100.     if( lseek( fileHandle, seekPos, SEEK_SET ) == -1 )
  101.         return FALSE;
  102.     else
  103.         return TRUE;
  104. }
  105.  
  106.  
  107. DWORD MFile::fio_GetPosition()
  108. {
  109.     if( !bFileOpen )
  110.         return -1;
  111.     
  112.     return tell( fileHandle );
  113. }
  114.  
  115.  
  116. DWORD MFile::fio_FileLength()
  117. {
  118.     return fileLength;
  119. }
  120.  
  121.  
  122.  
  123.  
  124.